// Generated from D:/BASIC/src/BasicParser.g4 by ANTLR 4.13.1
 package cn.stevenyang.gen; 
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link BasicParserParser}.
 */
public interface BasicParserListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by the {@code number}
	 * labeled alternative in {@link BasicParserParser#numeric}.
	 * @param ctx the parse tree
	 */
	void enterNumber(BasicParserParser.NumberContext ctx);
	/**
	 * Exit a parse tree produced by the {@code number}
	 * labeled alternative in {@link BasicParserParser#numeric}.
	 * @param ctx the parse tree
	 */
	void exitNumber(BasicParserParser.NumberContext ctx);
	/**
	 * Enter a parse tree produced by the {@code varDefine}
	 * labeled alternative in {@link BasicParserParser#assignment}.
	 * @param ctx the parse tree
	 */
	void enterVarDefine(BasicParserParser.VarDefineContext ctx);
	/**
	 * Exit a parse tree produced by the {@code varDefine}
	 * labeled alternative in {@link BasicParserParser#assignment}.
	 * @param ctx the parse tree
	 */
	void exitVarDefine(BasicParserParser.VarDefineContext ctx);
	/**
	 * Enter a parse tree produced by the {@code defParameters}
	 * labeled alternative in {@link BasicParserParser#defparam}.
	 * @param ctx the parse tree
	 */
	void enterDefParameters(BasicParserParser.DefParametersContext ctx);
	/**
	 * Exit a parse tree produced by the {@code defParameters}
	 * labeled alternative in {@link BasicParserParser#defparam}.
	 * @param ctx the parse tree
	 */
	void exitDefParameters(BasicParserParser.DefParametersContext ctx);
	/**
	 * Enter a parse tree produced by the {@code genericExpression}
	 * labeled alternative in {@link BasicParserParser#process}.
	 * @param ctx the parse tree
	 */
	void enterGenericExpression(BasicParserParser.GenericExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code genericExpression}
	 * labeled alternative in {@link BasicParserParser#process}.
	 * @param ctx the parse tree
	 */
	void exitGenericExpression(BasicParserParser.GenericExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code ifExpressionExpr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterIfExpressionExpr(BasicParserParser.IfExpressionExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code ifExpressionExpr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitIfExpressionExpr(BasicParserParser.IfExpressionExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compareLt}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCompareLt(BasicParserParser.CompareLtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code compareLt}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCompareLt(BasicParserParser.CompareLtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicOr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLogicOr(BasicParserParser.LogicOrContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicOr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLogicOr(BasicParserParser.LogicOrContext ctx);
	/**
	 * Enter a parse tree produced by the {@code num}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterNum(BasicParserParser.NumContext ctx);
	/**
	 * Exit a parse tree produced by the {@code num}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitNum(BasicParserParser.NumContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arthmeticMod}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArthmeticMod(BasicParserParser.ArthmeticModContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arthmeticMod}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArthmeticMod(BasicParserParser.ArthmeticModContext ctx);
	/**
	 * Enter a parse tree produced by the {@code returnStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterReturnStatement(BasicParserParser.ReturnStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code returnStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitReturnStatement(BasicParserParser.ReturnStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code varDefineExpr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterVarDefineExpr(BasicParserParser.VarDefineExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code varDefineExpr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitVarDefineExpr(BasicParserParser.VarDefineExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compareLte}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCompareLte(BasicParserParser.CompareLteContext ctx);
	/**
	 * Exit a parse tree produced by the {@code compareLte}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCompareLte(BasicParserParser.CompareLteContext ctx);
	/**
	 * Enter a parse tree produced by the {@code boolTrue}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterBoolTrue(BasicParserParser.BoolTrueContext ctx);
	/**
	 * Exit a parse tree produced by the {@code boolTrue}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitBoolTrue(BasicParserParser.BoolTrueContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicAnd}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLogicAnd(BasicParserParser.LogicAndContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicAnd}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLogicAnd(BasicParserParser.LogicAndContext ctx);
	/**
	 * Enter a parse tree produced by the {@code concatenateStrStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterConcatenateStrStatement(BasicParserParser.ConcatenateStrStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code concatenateStrStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitConcatenateStrStatement(BasicParserParser.ConcatenateStrStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicBitAnd}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLogicBitAnd(BasicParserParser.LogicBitAndContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicBitAnd}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLogicBitAnd(BasicParserParser.LogicBitAndContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicXor}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLogicXor(BasicParserParser.LogicXorContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicXor}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLogicXor(BasicParserParser.LogicXorContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compareGte}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCompareGte(BasicParserParser.CompareGteContext ctx);
	/**
	 * Exit a parse tree produced by the {@code compareGte}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCompareGte(BasicParserParser.CompareGteContext ctx);
	/**
	 * Enter a parse tree produced by the {@code getVarExpr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterGetVarExpr(BasicParserParser.GetVarExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code getVarExpr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitGetVarExpr(BasicParserParser.GetVarExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arthmeticMinus}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArthmeticMinus(BasicParserParser.ArthmeticMinusContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arthmeticMinus}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArthmeticMinus(BasicParserParser.ArthmeticMinusContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compareNeq}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCompareNeq(BasicParserParser.CompareNeqContext ctx);
	/**
	 * Exit a parse tree produced by the {@code compareNeq}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCompareNeq(BasicParserParser.CompareNeqContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicNot}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLogicNot(BasicParserParser.LogicNotContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicNot}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLogicNot(BasicParserParser.LogicNotContext ctx);
	/**
	 * Enter a parse tree produced by the {@code logicBitOr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterLogicBitOr(BasicParserParser.LogicBitOrContext ctx);
	/**
	 * Exit a parse tree produced by the {@code logicBitOr}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitLogicBitOr(BasicParserParser.LogicBitOrContext ctx);
	/**
	 * Enter a parse tree produced by the {@code boolFalse}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterBoolFalse(BasicParserParser.BoolFalseContext ctx);
	/**
	 * Exit a parse tree produced by the {@code boolFalse}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitBoolFalse(BasicParserParser.BoolFalseContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forEachExprStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterForEachExprStatement(BasicParserParser.ForEachExprStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code forEachExprStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitForEachExprStatement(BasicParserParser.ForEachExprStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arthmeticAdd}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArthmeticAdd(BasicParserParser.ArthmeticAddContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arthmeticAdd}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArthmeticAdd(BasicParserParser.ArthmeticAddContext ctx);
	/**
	 * Enter a parse tree produced by the {@code breakStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterBreakStatement(BasicParserParser.BreakStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code breakStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitBreakStatement(BasicParserParser.BreakStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code priority}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterPriority(BasicParserParser.PriorityContext ctx);
	/**
	 * Exit a parse tree produced by the {@code priority}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitPriority(BasicParserParser.PriorityContext ctx);
	/**
	 * Enter a parse tree produced by the {@code exitSubStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterExitSubStatement(BasicParserParser.ExitSubStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code exitSubStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitExitSubStatement(BasicParserParser.ExitSubStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code objectAccess}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterObjectAccess(BasicParserParser.ObjectAccessContext ctx);
	/**
	 * Exit a parse tree produced by the {@code objectAccess}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitObjectAccess(BasicParserParser.ObjectAccessContext ctx);
	/**
	 * Enter a parse tree produced by the {@code str}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterStr(BasicParserParser.StrContext ctx);
	/**
	 * Exit a parse tree produced by the {@code str}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitStr(BasicParserParser.StrContext ctx);
	/**
	 * Enter a parse tree produced by the {@code whileExprStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterWhileExprStatement(BasicParserParser.WhileExprStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code whileExprStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitWhileExprStatement(BasicParserParser.WhileExprStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classDefStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterClassDefStatement(BasicParserParser.ClassDefStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classDefStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitClassDefStatement(BasicParserParser.ClassDefStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code meSelf}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMeSelf(BasicParserParser.MeSelfContext ctx);
	/**
	 * Exit a parse tree produced by the {@code meSelf}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMeSelf(BasicParserParser.MeSelfContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arthmeticDivide}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArthmeticDivide(BasicParserParser.ArthmeticDivideContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arthmeticDivide}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArthmeticDivide(BasicParserParser.ArthmeticDivideContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forExprStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterForExprStatement(BasicParserParser.ForExprStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code forExprStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitForExprStatement(BasicParserParser.ForExprStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arrayDefStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArrayDefStatement(BasicParserParser.ArrayDefStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arrayDefStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArrayDefStatement(BasicParserParser.ArrayDefStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code functionCall}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterFunctionCall(BasicParserParser.FunctionCallContext ctx);
	/**
	 * Exit a parse tree produced by the {@code functionCall}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitFunctionCall(BasicParserParser.FunctionCallContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arthmeticMultiply}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterArthmeticMultiply(BasicParserParser.ArthmeticMultiplyContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arthmeticMultiply}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitArthmeticMultiply(BasicParserParser.ArthmeticMultiplyContext ctx);
	/**
	 * Enter a parse tree produced by the {@code mapDefStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterMapDefStatement(BasicParserParser.MapDefStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code mapDefStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitMapDefStatement(BasicParserParser.MapDefStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code assignStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterAssignStatement(BasicParserParser.AssignStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code assignStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitAssignStatement(BasicParserParser.AssignStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compareGt}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCompareGt(BasicParserParser.CompareGtContext ctx);
	/**
	 * Exit a parse tree produced by the {@code compareGt}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCompareGt(BasicParserParser.CompareGtContext ctx);
	/**
	 * Enter a parse tree produced by the {@code continueStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterContinueStatement(BasicParserParser.ContinueStatementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code continueStatement}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitContinueStatement(BasicParserParser.ContinueStatementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code compareEq}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterCompareEq(BasicParserParser.CompareEqContext ctx);
	/**
	 * Exit a parse tree produced by the {@code compareEq}
	 * labeled alternative in {@link BasicParserParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitCompareEq(BasicParserParser.CompareEqContext ctx);
	/**
	 * Enter a parse tree produced by the {@code funcCallParamsExpr}
	 * labeled alternative in {@link BasicParserParser#funccallparams}.
	 * @param ctx the parse tree
	 */
	void enterFuncCallParamsExpr(BasicParserParser.FuncCallParamsExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code funcCallParamsExpr}
	 * labeled alternative in {@link BasicParserParser#funccallparams}.
	 * @param ctx the parse tree
	 */
	void exitFuncCallParamsExpr(BasicParserParser.FuncCallParamsExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code ifExpr}
	 * labeled alternative in {@link BasicParserParser#ifexpression}.
	 * @param ctx the parse tree
	 */
	void enterIfExpr(BasicParserParser.IfExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code ifExpr}
	 * labeled alternative in {@link BasicParserParser#ifexpression}.
	 * @param ctx the parse tree
	 */
	void exitIfExpr(BasicParserParser.IfExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code elseIfExpr}
	 * labeled alternative in {@link BasicParserParser#elseifexpression}.
	 * @param ctx the parse tree
	 */
	void enterElseIfExpr(BasicParserParser.ElseIfExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code elseIfExpr}
	 * labeled alternative in {@link BasicParserParser#elseifexpression}.
	 * @param ctx the parse tree
	 */
	void exitElseIfExpr(BasicParserParser.ElseIfExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code elseExpr}
	 * labeled alternative in {@link BasicParserParser#elseexpression}.
	 * @param ctx the parse tree
	 */
	void enterElseExpr(BasicParserParser.ElseExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code elseExpr}
	 * labeled alternative in {@link BasicParserParser#elseexpression}.
	 * @param ctx the parse tree
	 */
	void exitElseExpr(BasicParserParser.ElseExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forExpr}
	 * labeled alternative in {@link BasicParserParser#forexpression}.
	 * @param ctx the parse tree
	 */
	void enterForExpr(BasicParserParser.ForExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code forExpr}
	 * labeled alternative in {@link BasicParserParser#forexpression}.
	 * @param ctx the parse tree
	 */
	void exitForExpr(BasicParserParser.ForExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code forEachExpression}
	 * labeled alternative in {@link BasicParserParser#foreachexpr}.
	 * @param ctx the parse tree
	 */
	void enterForEachExpression(BasicParserParser.ForEachExpressionContext ctx);
	/**
	 * Exit a parse tree produced by the {@code forEachExpression}
	 * labeled alternative in {@link BasicParserParser#foreachexpr}.
	 * @param ctx the parse tree
	 */
	void exitForEachExpression(BasicParserParser.ForEachExpressionContext ctx);
	/**
	 * Enter a parse tree produced by the {@code whileExpr}
	 * labeled alternative in {@link BasicParserParser#whileexpression}.
	 * @param ctx the parse tree
	 */
	void enterWhileExpr(BasicParserParser.WhileExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code whileExpr}
	 * labeled alternative in {@link BasicParserParser#whileexpression}.
	 * @param ctx the parse tree
	 */
	void exitWhileExpr(BasicParserParser.WhileExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code doLoopExpr}
	 * labeled alternative in {@link BasicParserParser#doloop}.
	 * @param ctx the parse tree
	 */
	void enterDoLoopExpr(BasicParserParser.DoLoopExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code doLoopExpr}
	 * labeled alternative in {@link BasicParserParser#doloop}.
	 * @param ctx the parse tree
	 */
	void exitDoLoopExpr(BasicParserParser.DoLoopExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code defFuncParamExpr}
	 * labeled alternative in {@link BasicParserParser#deffuncparam}.
	 * @param ctx the parse tree
	 */
	void enterDefFuncParamExpr(BasicParserParser.DefFuncParamExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code defFuncParamExpr}
	 * labeled alternative in {@link BasicParserParser#deffuncparam}.
	 * @param ctx the parse tree
	 */
	void exitDefFuncParamExpr(BasicParserParser.DefFuncParamExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code subroutineDefine}
	 * labeled alternative in {@link BasicParserParser#sub}.
	 * @param ctx the parse tree
	 */
	void enterSubroutineDefine(BasicParserParser.SubroutineDefineContext ctx);
	/**
	 * Exit a parse tree produced by the {@code subroutineDefine}
	 * labeled alternative in {@link BasicParserParser#sub}.
	 * @param ctx the parse tree
	 */
	void exitSubroutineDefine(BasicParserParser.SubroutineDefineContext ctx);
	/**
	 * Enter a parse tree produced by the {@code functionDefine}
	 * labeled alternative in {@link BasicParserParser#func}.
	 * @param ctx the parse tree
	 */
	void enterFunctionDefine(BasicParserParser.FunctionDefineContext ctx);
	/**
	 * Exit a parse tree produced by the {@code functionDefine}
	 * labeled alternative in {@link BasicParserParser#func}.
	 * @param ctx the parse tree
	 */
	void exitFunctionDefine(BasicParserParser.FunctionDefineContext ctx);
	/**
	 * Enter a parse tree produced by the {@code implListExpr}
	 * labeled alternative in {@link BasicParserParser#impllist}.
	 * @param ctx the parse tree
	 */
	void enterImplListExpr(BasicParserParser.ImplListExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code implListExpr}
	 * labeled alternative in {@link BasicParserParser#impllist}.
	 * @param ctx the parse tree
	 */
	void exitImplListExpr(BasicParserParser.ImplListExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code defClassExpr}
	 * labeled alternative in {@link BasicParserParser#defclass}.
	 * @param ctx the parse tree
	 */
	void enterDefClassExpr(BasicParserParser.DefClassExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code defClassExpr}
	 * labeled alternative in {@link BasicParserParser#defclass}.
	 * @param ctx the parse tree
	 */
	void exitDefClassExpr(BasicParserParser.DefClassExprContext ctx);
	/**
	 * Enter a parse tree produced by {@link BasicParserParser#accessclass}.
	 * @param ctx the parse tree
	 */
	void enterAccessclass(BasicParserParser.AccessclassContext ctx);
	/**
	 * Exit a parse tree produced by {@link BasicParserParser#accessclass}.
	 * @param ctx the parse tree
	 */
	void exitAccessclass(BasicParserParser.AccessclassContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classSubExpr}
	 * labeled alternative in {@link BasicParserParser#classsub}.
	 * @param ctx the parse tree
	 */
	void enterClassSubExpr(BasicParserParser.ClassSubExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classSubExpr}
	 * labeled alternative in {@link BasicParserParser#classsub}.
	 * @param ctx the parse tree
	 */
	void exitClassSubExpr(BasicParserParser.ClassSubExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classFuncExpr}
	 * labeled alternative in {@link BasicParserParser#classfunc}.
	 * @param ctx the parse tree
	 */
	void enterClassFuncExpr(BasicParserParser.ClassFuncExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classFuncExpr}
	 * labeled alternative in {@link BasicParserParser#classfunc}.
	 * @param ctx the parse tree
	 */
	void exitClassFuncExpr(BasicParserParser.ClassFuncExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classVarExpr}
	 * labeled alternative in {@link BasicParserParser#classvar}.
	 * @param ctx the parse tree
	 */
	void enterClassVarExpr(BasicParserParser.ClassVarExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classVarExpr}
	 * labeled alternative in {@link BasicParserParser#classvar}.
	 * @param ctx the parse tree
	 */
	void exitClassVarExpr(BasicParserParser.ClassVarExprContext ctx);
	/**
	 * Enter a parse tree produced by {@link BasicParserParser#classblock}.
	 * @param ctx the parse tree
	 */
	void enterClassblock(BasicParserParser.ClassblockContext ctx);
	/**
	 * Exit a parse tree produced by {@link BasicParserParser#classblock}.
	 * @param ctx the parse tree
	 */
	void exitClassblock(BasicParserParser.ClassblockContext ctx);
	/**
	 * Enter a parse tree produced by the {@code classBodyExpr}
	 * labeled alternative in {@link BasicParserParser#classbody}.
	 * @param ctx the parse tree
	 */
	void enterClassBodyExpr(BasicParserParser.ClassBodyExprContext ctx);
	/**
	 * Exit a parse tree produced by the {@code classBodyExpr}
	 * labeled alternative in {@link BasicParserParser#classbody}.
	 * @param ctx the parse tree
	 */
	void exitClassBodyExpr(BasicParserParser.ClassBodyExprContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arrayDef}
	 * labeled alternative in {@link BasicParserParser#array}.
	 * @param ctx the parse tree
	 */
	void enterArrayDef(BasicParserParser.ArrayDefContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arrayDef}
	 * labeled alternative in {@link BasicParserParser#array}.
	 * @param ctx the parse tree
	 */
	void exitArrayDef(BasicParserParser.ArrayDefContext ctx);
	/**
	 * Enter a parse tree produced by the {@code mapDef}
	 * labeled alternative in {@link BasicParserParser#map}.
	 * @param ctx the parse tree
	 */
	void enterMapDef(BasicParserParser.MapDefContext ctx);
	/**
	 * Exit a parse tree produced by the {@code mapDef}
	 * labeled alternative in {@link BasicParserParser#map}.
	 * @param ctx the parse tree
	 */
	void exitMapDef(BasicParserParser.MapDefContext ctx);
	/**
	 * Enter a parse tree produced by the {@code arrayTypeDef}
	 * labeled alternative in {@link BasicParserParser#arraytype}.
	 * @param ctx the parse tree
	 */
	void enterArrayTypeDef(BasicParserParser.ArrayTypeDefContext ctx);
	/**
	 * Exit a parse tree produced by the {@code arrayTypeDef}
	 * labeled alternative in {@link BasicParserParser#arraytype}.
	 * @param ctx the parse tree
	 */
	void exitArrayTypeDef(BasicParserParser.ArrayTypeDefContext ctx);
	/**
	 * Enter a parse tree produced by the {@code asTypeDef}
	 * labeled alternative in {@link BasicParserParser#astype}.
	 * @param ctx the parse tree
	 */
	void enterAsTypeDef(BasicParserParser.AsTypeDefContext ctx);
	/**
	 * Exit a parse tree produced by the {@code asTypeDef}
	 * labeled alternative in {@link BasicParserParser#astype}.
	 * @param ctx the parse tree
	 */
	void exitAsTypeDef(BasicParserParser.AsTypeDefContext ctx);
}